<?php
use Symfony\Component\VarExporter\VarExporter;
use think\exception\HttpResponseException;
use think\Response;
use   Firebase\JWT\JWT;
use  think\facade\Db;

function remote_file_exists($url){
    return(bool)preg_match('~HTTP/1\.\d\s+200\s+OK~', @current(get_headers($url)));
}

function downcount($id, $typeid=1) { //下载数
    $map['typeid'] = $typeid;
    $map['type'] = 1;
    $map['itemid'] = $id;
    $data = Db::name('itemlog')->where($map)->count('itemid');
    return $data;
}

function wysccount($id, $typeid) { //收藏数
    $map['typeid'] = $typeid;
    $map['type'] = 2;
    $map['itemid'] = $id;
    $data = Db::name('itemlog')->where($map)->count('itemid');
    return $data;
}
function wytjcount($id, $typeid) { //推荐数
    $map['typeid'] = $typeid;
    $map['type'] = 3;
    $map['itemid'] = $id;
    $data = Db::name('itemlog')->where($map)->count('itemid');
    return $data;
}

//全站公用

function attach($attach, $dir) {
    if (false === strpos($attach, 'http://')) {
        //本地附件
//        return root_path() . '/' . C('wkcms_attach_path') . $type . '/' . $attach;
        return root_path() . '/' . 'public/storage/' . $dir . '/' . $attach;
        //远程附件
        //todo...
    } else {
        //URL链接
        return $attach;
    }
}

function docfile($dir, $filename) {
    if (false === strpos($dir, 'http')) {
        return request()->domain().'/'.$dir.$filename;
        //远程附件
        //todo...
    } else {
        //URL链接
        return $dir.$filename;
    }
}


function success($code=1,$mes='',$data='',$dialog='')
{
    return json([
        'status'=>$code,
        'msg'=>$mes,
        'data'=>$data,
        'dialog' => $dialog,
    ]);
}


//失败时调用

function fail($code=0,$msg='',$data='',$dialog='')
{
    return json([
        'status'=>$code,
        'msg'=>$msg,
        'data'=>$data,
        'dialog' => $dialog,
    ]);

}

function getusername($uid) {
    if($uid == 0){
        $data ='管理员';
    } else{
        $data = Db::name('user')->where(array('id' => $uid))->value('username');
    }

    return $data;
}

// 获得分诶下文档数量 -- wf添加
function getcatecount($cateid) {
    $where[] =array('cid','=',$cateid);
//    $where[] =array('del_status','>',0);
    $data = Db::name('doc_con')->where($where)->count();
    return $data;
}

// 获得分诶下文档数量 -- wf添加
function getzjcount($zjid) {
    $where[] =array('zjid','=',$zjid);
//    $where[] =array('del_status','>',0);
    $data = Db::name('doc_con')->where($where)->count();
    return $data;
}

function getcateallid($id) {
    if ($id == 0) {
        $idarr = Db::name('category')->field('id')->select()->toArray();
    } else {
        $spid = $id . '|';
//        where('spid','like',$spid .'%')
        $map[] = array('spid','like', $spid . '%');
        $idarr =Db::name('category')->where($map)->field('id')->select()->toArray();
        if (empty($idarr)) {
            $idarr = $id;
        } else {
            array_push($idarr, ['id'=>$id]);
        }
    }
    return $idarr;
}

/**
 * 获取上传路径
 */
function upload_url($file, $dir = '') {
    return request()->domain().'/storage/' . $dir . '/' . $file;
}


function download_url($url){
    $file  =  fopen($url, "rb");
    $file_name = parse_url($url)['path'];
    Header( "Content-type:  application/octet-stream ");
    Header( "Accept-Ranges:  bytes ");
    Header( "Content-Disposition:  attachment;  filename= $file_name");
    while (!feof($file)) {
        echo fread($file, 8192);
        ob_flush();
        flush();
    }
    fclose($file);
    exit;
}

/**
 * 获取数据库中的配置列表
 * @return array 配置数组
 */
function config_lists(){
    $data = Db::name('config')->field('name,value')->select();
    foreach ($data as $key=>$val) {
        $val_data = $val['value'];
        $web_config[$val['name']] = @unserialize($val_data)?unserialize($val_data):$val_data;
    }
    return $web_config;
}



/* [return_jump_tip URL跳转提示信息 echo 输出样式]
 * @param  [type]   $status [状态 1 true | 0 false]
 * @param  [type]   $msg    [信息]
* @param  [array]  $data   [数据]
* @param  [string] $code   [状态码]
* @return [type]           [description]
    *
 */
function return_jump_tip($status = null, $msg = null, $url = null)
{
    $img = '';
    if($status){
        $img = 'success.png';
    }else{
        $img = 'errors.png';
    }
    echo '
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title>跳转提示</title>
                <style type="text/css">
                    *{ padding: 0; margin: 0; }
                    body{ background: #fff; font-family: "Microsoft Yahei"; color: #333; font-size: 16px; }
                    .system-message{ padding: 24px 48px; text-align: center; margin-top: 10%;}
                    .system-message h1{ font-size: 100px; font-weight: normal; line-height: 120px; margin-bottom: 12px; }
                    .system-message .jump{ padding-top: 10px; }
                    .system-message .jump a{ color: #333; }
                    .system-message .tips{ line-height: 1.8em; font-size: 36px; }
                    .system-message .detail{ font-size: 12px; line-height: 20px; margin-top: 12px; display: none; }
                </style>
            </head>
            <body>
            <div class="system-message">
                <h1>
                    <img src="/static/install/'.$img.'" style="width:100px; height:100px">
                </h1>
                <p class="tips">'.$msg.'</p>
                <p class="detail"></p>
                <p class="jump">
                    页面自动 <a id="href" href="'.$url.'">跳转</a> 等待时间： <b id="wait">3</b>
                </p>
            </div>
            <script type="text/javascript">
                (function(){
                    var wait = document.getElementById(\'wait\'),
                        href = document.getElementById(\'href\').href;
                    var interval = setInterval(function(){
                        var time = --wait.innerHTML;
                        if(time <= 0) {
                            location.href = href;
                            clearInterval(interval);
                        };
                    }, 1000);
                })();
            </script>
            </body>
            </html>
            ';
    die;
}